package es.ugr.beequizz.controller;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import es.ugr.beequizz.dto.AsignaturaDTO;
import es.ugr.beequizz.dto.DificultadDTO;
import es.ugr.beequizz.model.Asignatura;
import es.ugr.beequizz.model.Dificultad;
import es.ugr.beequizz.services.AsignaturaService;
import es.ugr.beequizz.services.DificultadService;
import es.ugr.beequizz.services.MailService;

@Controller
@RequestMapping(value= "/referencias")
public class DatosReferenciaController {

	@Autowired
	private DificultadService dificultadService;
	
	@Autowired
	private AsignaturaService asignaturaService;
	
	@Autowired
	private MailService mailService;
	
	@RequestMapping(value= "/dificultad",method= RequestMethod.GET)
	@ResponseBody
	public List<DificultadDTO> dificultad(){
	
		// Recuperacion de los datos de la base
		final List<Dificultad> dificultades = dificultadService.buscarDificultad();
		
		// Inicializacion de la lista a enviar
		final List<DificultadDTO> listaDificultad = new ArrayList<DificultadDTO>();
		
		// Conversion de bean de la base en dto
		for (Dificultad dificultad : dificultades) {
			final DificultadDTO dto = new DificultadDTO();
			dto.setId(dificultad.getId());
			dto.setNivel(dificultad.getNivel());
			dto.setLabel(dificultad.getLabel());
			listaDificultad.add(dto);
		}
		
		// Manda los datos a la interfaz
		return listaDificultad;
	}
	
	
	@RequestMapping(value = "/asignaturas",method = RequestMethod.GET)
	@ResponseBody
	public  List<AsignaturaDTO> asignatura() {
				
		final List<Asignatura> asignaturas = asignaturaService.buscarAsignaturas();
		
		final List<AsignaturaDTO> listaAsignaturas = new ArrayList<AsignaturaDTO>();
		
		for (Asignatura asignatura : asignaturas) {
			final AsignaturaDTO dto = new AsignaturaDTO();
			dto.setId(asignatura.getId());
			dto.setNombre(asignatura.getNombre());
			listaAsignaturas.add(dto);
		}
	
		return listaAsignaturas;
	}
	
	
}
